package com.nytd.demo.mapper;

import com.nytd.demo.entity.BookInfo;
import com.nytd.demo.entity.PageRequest;
import com.nytd.demo.entity.PageResult;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface BookInfoMapper {
    @Insert("insert into book_info (book_name, author, count, price, publish, `status`)" +
            "values (#{bookName}, #{author}, #{count}, #{price}, #{publish}, #{status})")
    Integer insertBook(BookInfo bookInfo);

    @Select("select * from book_info")
    List<BookInfo> select();

    @Select("select count(1) from book_info where `status` <> 0")
    Integer count();

    @Select("select * from book_info where `status` <> 0 order by id limit #{offset}, #{pageSize}")
    List<BookInfo> selectByPage(PageRequest pageRequest);

    @Select("select id, book_name, author, count, price, publish, `status`" +
            ", create_time, update_time from book_info where `status` <> 0 and id = #{bookId}")
    BookInfo selectBookById(Integer bookId);

    Integer updateBookById(BookInfo bookInfo);

    Integer batchDeleteBook(List<Integer> ids);
}
